1. Field of the Invention
The present invention relates to an apparatus and a method for calculating gate delay used in logic simulation and timing analysis, and in particular, to an apparatus and a method for calculating gate delay using an RC model.
2. Description of the Background Art
Recently, the higher integration and multifunction of a semiconductor integrated circuit are increasing its circuit scale, thereby making the time required for its development longer. One method of reducing the time required for the development is to minimize re-designing and re-development due to the malfunction of a produced semiconductor integrated circuit. To achieve this goal, the simulation result obtained in a stage of designing a semiconductor integrated circuit must approximate to the timing of a signal between the gates within an actually produced semiconductor integrated circuit, and therefore there is an increasing need for a delay calculation apparatus with higher accuracy.
FIG. 1 is a block diagram showing a structure of a conventional delay calculation apparatus. The delay calculation apparatus includes: an input waveform gradient calculation apparatus 51 for extracting the gradient of the input waveform applied to an input terminal of a gate; an output load model calculation apparatus 52 for RC modeling the load applied to an output terminal of the gate; a gate delay calculation apparatus 53 for calculating the delay experienced from the input terminal to the output terminal of the gate; and a wire delay calculation apparatus 54 for calculating the delay (due to wiring) between the output terminal of the gate and the input terminal of a gate in a next stage. Gate delay data 55 calculated by gate delay calculation apparatus 53 and wire delay data 56 calculated by wire delay calculation apparatus 54 are used in logic simulation or timing analysis by a simulator or the like.
FIG. 2 is a schematic diagram showing an example of a circuit in which delay calculation apparatus calculates gate delay data 55 and wire delay data 56. The circuit includes gates (inverters) 41-44 and wires 45-50 between the gates. The processing procedure of delay calculation apparatus will now be described with reference to the circuit diagram shown in FIG. 2.
The delay in a logic circuit is generally calculated from the delay of gates per se (gate delay data 55) and the delay resulting from the wire capacitance between gates (wire delay data 56). Therefore, calculation of gate delay data 55 and wire delay data 56 (on the side of the output terminal of a gate) for every gate by delay calculation apparatus enables logic simulation and timing analysis by a simulator or the like. For example, assume that delay calculation apparatus calculates the delay for gate 42 shown in FIG. 2. First, input waveform gradient calculation apparatus 51 calculates the gradient amount of the voltage waveform applied to the input terminal of gate 42 based on the calculation result (gate delay data and wire delay data) of gate 41 in a preceding stage.
Wires 48-50 which carry the output voltage of gate 42 and the input of gates 43 and 44 are modeled by output load model calculation apparatus 52. This modeling will be described later.
Gate delay calculation apparatus 53 receives the amount of input waveform gradient calculated by input waveform gradient calculation apparatus 51 and the output load model calculated by output load model calculation apparatus 52, and calculates the gate delay between the input terminal and the output terminal of gate 42 to produce gate delay data 55. Gate delay calculation apparatus 53 also calculates the gradient of the output voltage waveform in gate 42 and transmits it to wire delay calculation apparatus 54.
Wire delay calculation apparatus 54 receives the output voltage waveform of gate 42 calculated by gate delay calculation apparatus 53 and the output load model calculated by output load model calculation apparatus 52 and calculates the wire delay between the output terminal of gate 42 and the input terminals of gates 43 and 44 to produce wire delay data 56.
FIG. 3 is a block. diagram showing in further detail a structure of gate delay calculation apparatus 53 in FIG. 1. Gate delay calculation apparatus 53 includes: an Rs, To parameter storage file 57 for storing a resistance value Rs of source resistance and a fixed delay time To; an Rs, To determination portion 58 for determining Rs and To which are required in gate delay calculation using parameters stored in Rs, To parameter storage file 57; a gate delay determination portion 59 for calculating gate delay using Rs and To; and an input waveform determination portion 60 for calculating input waveform data 63 which is required for the calculation of wire delay by wire delay calculation apparatus 54. The amount of input waveform gradient 61 and an output load model 62 indicate the value calculated by input waveform gradient calculation apparatus 51 and that calculated by output load model calculation apparatus 52, respectively.
FIG. 4 is a diagram showing a structure of a xcfx80 type RC model generally used as output load model 62. The xcfx80 type RC model includes a source resistance 71 of a gate, a switch 72 for connecting the output terminal of the gate to a xcfx80 type load, and a xcfx80 type load consisting of capacitance elements 74 and 75 and a resistance element 73.
The processing procedure of gate delay calculation apparatus 53 will now be described with reference to a circuit diagram of a xcfx80 type RC model shown in FIG. 4.
Rs, To determination portion 58 determines resistance value Rs, of source resistance 71 and fixed time delay To from the parameters stored in Rs, To parameter storage file 57, the amount of input waveform gradient 61 and output load model 62. Fixed delay time To represents the time at which switch 72 is turned from off to on and is significantly influenced by the amount of input waveform gradient 61. Therefore, fixed delay time To is set as a parameter so that it can be determined from the amount of input waveform gradient 61 and stored in Rs, To parameter storage file 57. It is noted that while resistance value Rs may be defined as a constant value independent of input and output states, it can also be set as a parameter in consideration of the amount of input waveform gradient 61 and output load model 62 to achieve the higher calculation accuracy of the gate delay. In this case, output load model 62 is referenced. Thus, with reference to the amount of input waveform gradient 61, output load model 62 and the parameters stored in Rs, To parameter storage file 57, Rs, To determination portion 58 determines the resistance value Rs of source resistance and the value of fixed delay time To.
It is noted that Rs, To parameter varies depending on a gate type and rising/falling of output, and therefore it is set as a parameter in accordance with the gate type and the change in direction of output. In addition, rising of a gate means a state in which a power supply is connected to the upper terminal of source resistance 71 of xcfx80 type RC model shown in FIG. 4, whereas falling means a state in which the upper terminal of source resistance 71 is grounded. Gate delay is calculated by gate delay determination portion 59 using resistance value Rs and fixed delay time To determined by Rs, To determination portion 58 and output load model 62. Gate delay is calculated by analyzing xcfx80 type RC model shown in FIG. 4. The resistance value R of resistance element 73 of xcfx80 type RC model and the capacitance values C1 and C2 of capacitance elements 74 and 75 are determined from output load model 62 calculated by output load model calculation apparatus 52. In modeling the output load of gate 42 in FIG. 2, for example, capacitance values C1 and C2 and resistance value R are determined from the wire capacitance and impedance of wires 48-50 and the input capacitance of gates 43 and 44. The xcfx80 type RC model is analyzed to calculate the output waveform v(t) of the gate in accordance with the following expression, where E represents a supply voltage.                                           v            ⁡                          (              t              )                                =                                    E              ⁡                              [                                  1                  -                                      {                                                                                                                                                      r                              1                                                        -                                                          z                              0                                                                                                                                          r                              1                                                        -                                                          r                              2                                                                                                      ⁢                                                  exp                          ⁡                                                      (                                                          -                                                                                                r                                  1                                                                ⁡                                                                  (                                                                      t                                    -                                                                          T                                      0                                                                                                        )                                                                                                                      )                                                                                              -                                                                                                                                  r                              2                                                        -                                                          z                              0                                                                                                                                          r                              1                                                        -                                                          r                              2                                                                                                      ⁢                                                  exp                          ⁡                                                      (                                                          -                                                                                                r                                  2                                                                ⁡                                                                  (                                                                      t                                    -                                                                          T                                      0                                                                                                        )                                                                                                                      )                                                                                                                }                                                  ]                                      ⁢                          (                              t                 greater than                                   T                  0                                            )                                      ⁢                  
                ⁢        wherein        ⁢                  
                ⁢                              r            1                    =                                    1              2                        ⁢                          {                                                (                                                            1                                              RC                        1                                                              +                                          1                                              RC                        2                                                              +                                          1                                                                        R                          s                                                ⁢                                                  C                          2                                                                                                      )                                -                                                                                                    (                                                                              1                                                          RC                              1                                                                                +                                                      1                                                          RC                              2                                                                                +                                                      1                                                                                          R                                s                                                            ⁢                                                              C                                2                                                                                                                                    )                                            2                                        -                                          4                                                                        R                          s                                                ⁢                                                  C                          1                                                ⁢                                                  C                          2                                                                                                                                }                                      ⁢                  
                ⁢                              r            2                    =                                                    1                2                            ⁢                              {                                                      (                                                                  1                                                  RC                          1                                                                    +                                              1                                                  RC                          2                                                                    +                                              1                                                                              R                            s                                                    ⁢                                                      C                            2                                                                                                                )                                    -                                                                                                              (                                                                                    1                                                              RC                                1                                                                                      +                                                          1                                                              RC                                2                                                                                      +                                                          1                                                                                                R                                  s                                                                ⁢                                                                  C                                  2                                                                                                                                              )                                                2                                            -                                              4                                                                              R                            s                                                    ⁢                                                      C                            1                                                    ⁢                                                      C                            2                                                                                                                                              }                            ⁢                              z                0                                      =                                          1                                  RC                  1                                            +                              1                                  RC                  2                                                                                        (        1        )            
In the above expression (1), gate delay data 55 is obtained by finding the time at which output waveform v (t) equals the logic threshold voltage. That is, by solving v(t)=xcex2E(0 less than xcex2 less than 1) for time t. 0.5 is commonly used for the value of xcex2.
As described above, a conventional gate delay calculation apparatus 53 calculates gate delay using a xcfx80 type RC model. In other words, resistance value Rs is assumed to be infinite while switch 72 is off (up to fixed delay time To), whereas resistance value Rs is assumed to be a fixed value Rs determined by Rs, To determination portion 58 while switch 72 is on (after fixed delay time To). The actual resistance value Rs of source resistance of a gate is, however, a value which changes with time.
FIG. 5 is a diagram showing a relation between resistance value Rs of source resistance and time t. A graph 81 shows a relation between resistance value Rs of source resistance used by a conventional gate delay calculation apparatus 53 and time t. Resistance value Rs is infinite up to fixed delay time To=1.0 ns, after which point it becomes a constant value. Furthermore, a graph 82 shows a relation between resistance value Rs of source resistance of an actual gate and time t. As is apparent from graph 82, the source resistance of an actual gate is a prescribed value which is not infinite at time 0 ns and which gradually decreases with time.
FIG. 6 is a diagram showing a relation between output voltage v(t) of a gate and time t. A graph 83 shows a relation between the output voltage v(t) calculated by a conventional gate delay calculation apparatus 53 and time t. Output voltage v(t) is 0V up to fixed delay time To=1.0 ns, after which point it becomes a curve in accordance with expression (1). A graph 84 also shows a relation between output voltage v(t) of an actual gate and time t. As is apparent from graph 84, output voltage v(t) of an actual gate is a prescribed value at time 0 ns and it gradually increases with time.
The resulting difference between the change in the output voltage of an actual gate and that calculated by gate delay calculation apparatus 53 is caused by the following.
(1) In gate delay calculation apparatus 53, capacitance elements C1 and C2 of an xcfx80 type RC model do not start charging until fixed delay time To. In an actual gate, however, charging starts at time 0 ns.
(2) Fixed delay time To is set at the time at which the source resistance of an actual gate cannot be considered a sufficiently high value, and therefore the time which is earlier than the time at which the source resistance approximate to a constant value is set. As a result, resistance value Rs after fixed delay time To will be set larger than a constant value to which the source resistance of an actual gate approximate, so that the output waveform calculated by gate delay calculation apparatus 53 will be offset downward from that of an actual gate as the time proceeds. As a result, the time calculated by gate delay calculation apparatus 53 at which logic threshold voltage is attained will differ from that in an actual gate.
This problem may be solved, for example, by modeling Rs, To such that the time calculated by gate delay calculation apparatus 53 at which logic threshold voltage is attained corresponds to that in an actual gate. However, a problem still remains in that the shape of the output waveform calculated by gate delay calculation apparatus 53 considerably differs from that in an actual gate, and therefore exact output waveform cannot be transmitted to wire delay calculation apparatus 54.
Another problem is that prior art approach cannot be used for a system which performs delay calculation using logic threshold as variable.
It is an object of the present invention to provide a gate delay calculation apparatus capable of enhancing calculation accuracy for gate delay data.
It is another object of the present invention to provide a gate delay calculation method capable of enhancing calculation accuracy for gate delay data.
In accordance with one aspect of the present invention, a gate delay calculation apparatus includes a Rs parameter storage file for storing in advance a parameters which express the source resistance value of an RC model as a continuous time function, an Rs determination portion for selectively extracting the parameters stored in the Rs parameter storage file from the amount of input waveform gradient and an output load model, and a gate delay determination portion for calculating gate delay based on the source resistance value expressed by the parameters extracted by the Rs determination portion and the output load model.
The gate delay determination portion calculates gate delay using the source resistance value expressed as a continuous time function by the parameters, and therefore it becomes possible to obtain a value which approximates to the gate delay calculated using an actual source resistance value.
In accordance with another aspect of the present invention, the gate delay calculation method includes the step of selectively determining the parameters which expresses the source resistance value of an RC model as a continuous time function from the amount of input waveform gradient and an output load model, and the step of calculating gate delay based on the source resistance value expressed by the parameters and the output load model.
Gate delay is calculated using the source resistance value expressed as a continuous time function by the parameters, and therefore it becomes possible to obtain a value which approximates to the gate delay calculated using an actual source resistance value.
The foregoing and other objects, features, aspects and advantages of the present invention will become more apparent from the following detailed description of the present invention when taken in conjunction with the accompanying drawings.